/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.rrhh.controlador;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.conexion.cConexion;
import sv.com.intesal.rrhh.bean.Cargo;
import sv.com.intesal.rrhh.sql.SQLCargo;

/**
 *
 * @author JM
 */
public class CargoControlador {

    public List<Cargo> fillGrid() throws Exception {
        List<Cargo> list = new ArrayList<Cargo>();
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLCargo.cargoBuscar).executeQuery();
            while (rs.next()) {
                Cargo a = new Cargo();
                a.setCodigo_c(rs.getInt("id_c"));
                a.setNombre_c(rs.getString("nombre_c"));
                a.setCodigo_a(rs.getInt("id_a"));
                a.setNombre_a(rs.getString("nombre_a"));
                list.add(a);
            }

            rs.close();
            return list;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<Cargo> fillCombo() throws Exception {
        List<Cargo> list = new ArrayList<Cargo>();
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLCargo.cargoBuscarForCombo).executeQuery();
            while (rs.next()) {
                Cargo a = new Cargo();
                a.setCodigo_c(rs.getInt("id_c"));
                a.setNombre_c(rs.getString("nombre_c"));
                list.add(a);
            }
            return list;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public void CargoIM(Cargo cargo) throws Exception {
        Connection cnn = cConexion.conectar();
        try {
            PreparedStatement ps;
            if (cargo.getCodigo_c() == 0) {
                ps = cnn.prepareStatement(SQLCargo.cargoInsertar);
            } else {
                ps = cnn.prepareStatement(SQLCargo.cargoUpdate);
                ps.setInt(3, cargo.getCodigo_c());
            }
            ps.setString(1, cargo.getNombre_c());
            ps.setInt(2, cargo.getCodigo_a());
            ps.executeUpdate();
            ps.close();
            cnn.close();

            Mensaje m = new Mensaje();
            if (cargo.getCodigo_c() == 0) {
                m.message(m.getIinformation());
            } else {
                m.message(m.getImodificada());
            }
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
